package com.note.app.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.note.app.dto.CommentCreateDTO;
import com.note.app.dto.CommentDTO;

/**
 * 评论服务接口
 */
public interface CommentService {

    /**
     * 创建评论
     *
     * @param userId 用户ID
     * @param dto 创建评论DTO
     * @return 创建的评论ID
     */
    Long createComment(Long userId, CommentCreateDTO dto);

    /**
     * 删除评论
     *
     * @param userId 用户ID
     * @param commentId 评论ID
     * @return 是否删除成功
     */
    boolean deleteComment(Long userId, Long commentId);

    /**
     * 分页查询笔记评论
     *
     * @param noteId 笔记ID
     * @param current 当前页
     * @param size 每页大小
     * @return 评论分页结果
     */
    Page<CommentDTO> getNoteComments(Long noteId, long current, long size);

    /**
     * 分页查询用户评论
     *
     * @param userId 用户ID
     * @param current 当前页
     * @param size 每页大小
     * @return 评论分页结果
     */
    Page<CommentDTO> getUserComments(Long userId, long current, long size);

    /**
     * 查询笔记评论数量
     *
     * @param noteId 笔记ID
     * @return 评论数量
     */
    int countCommentsByNoteId(Long noteId);
} 